package br.edu.fucapi.posgraduacao.poo2.sgr.controller.impl;

import java.io.Serializable;
import java.util.List;
import javax.inject.Inject;
import br.edu.fucapi.posgraduacao.poo2.sgr.controller.AlocacaoController;
import br.edu.fucapi.posgraduacao.poo2.sgr.dao.DAO;
import br.edu.fucapi.posgraduacao.poo2.sgr.model.Alocacao;

/**
 * @class Alocacao.java
 * @author Fabio Oliveira
 * @date 11/01/2013
 * @brief Classe utilizada para Controle das Operações das Alocações.
 */

public class AlocacaoControllerImpl implements AlocacaoController {

	@Inject
	private transient DAO<Alocacao, Serializable> dao;
	
	public void salvar(Alocacao alocacao) throws RuntimeException {
		dao.save(alocacao);
	}

	public void remover(Alocacao alocacao) throws RuntimeException {
		dao.remove(alocacao);
	}

	public void atualizar(Alocacao alocacao) throws RuntimeException {
		dao.update(alocacao);
	}

	public List<Alocacao> pesquisar(Alocacao alocacao) throws RuntimeException {		
		return dao.find(alocacao);
	}

	public Alocacao consultarPorExemplo(Alocacao alocacao) throws RuntimeException {	
		return dao.findByExemplo(alocacao);
	}
	
	public List<Alocacao> listarTodos() throws RuntimeException {		
		return dao.findAll(Alocacao.class);
	}

}
